$(document).ajaxStart(function() {
    $('#general_error').hide();
    $('#loadingGif').fadeIn(100);
    $("#contenidoHTML").css({
        "opacity": "0.3",
        "z-index": "99999999"
    });
    $("#main").css({
        "opacity": "0.3",
        "z-index": "99999999"
    });
});

$(document).ajaxStop(function() {
    $('#loadingGif').fadeOut(100);
    $("#contenidoHTML").css({"opacity": "1"});
    $("#main").css({"opacity": "1"});
});

$(document).on("click", "#popupBoxMessageClose", function() {
    $('#general_error').hide();
    $("#general_error").html("");
    $('#popupShowMessage').fadeOut(100);
    $("#main").css({// this is just for style        
        "opacity": "1"
    });
});

function cerrarSession() {

    var r = confirm("Desea Cerrar la sesion actual?");
    if (r === false) {
        return;
    }

    $.ajax({
        type: "POST",
        url: "../controlador/SeguridadUsuario.php",
        async: true, //--- realizar la peticion asincrona
        data: "OPERACION=logout&controlador=SeguridadUsuario",
        dataType: 'json',
        cache: false,
        success: function(item) {
            if (item.hasOwnProperty("ERROR")) {
                showPopupBoxMessage(item.ERROR);
            } else {
                window.location.href = "../index.html";
            }
        }, error: function(request, status, error) {
            showPopupBoxMessage(error);
        }
    });
}

function validarPermisoUsuarioSession(codPermiso) {
    var response = $.ajax({
        type: "POST",
        url: "../controlador/SeguridadPermiso.php",
        async: false,
        data: "OPERACION=validarPermisoByUsuario&controlador=SeguridadPermiso&codPermiso=" + escape(codPermiso),
        dataType: 'json',
        cache: false,
        success: function(item) {
        }, 
        error: function(request, status, error) {
            showPopupBoxMessage(error);
        }
    }).responseText;
    var obj = $.parseJSON(response);
    if (obj.hasOwnProperty("ERROR")) {
        showPopupBoxMessage(obj.ERROR);
        return obj.ERROR;
    } else {
        return "";
    }
}

function getUrlValues(paramName) {
    paramName = paramName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + paramName + "=([^&#]*)"),
            results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

function showPopupBoxMessage(message) {
    if (message !== "") {
        $("#general_error").html("");
        $("#general_error").html(message);
        $("#general_error").dialog("open");
    }
}

function inicializarPaginacionGrilla(DBtableName, idDivPaginacion, whereSection, registrosPorPagina) {
    var totalPaginas = 0;

    if (typeof whereSection === "undefined") {
        whereSection = "";
    }
    if (typeof registrosPorPagina === "undefined") {
        registrosPorPagina = -1;
    }

    //--- obtengo el total de paginas y numero de registros por pagina
    $.ajax({
        type: "POST",
        url: "../controlador/FuncionesGenerales.php",
        async: false, //--- realizar la peticion de manera asincrona
        data: "OPERACION=getNumberOfPages&controlador=FuncionesGenerales&tableName=" + DBtableName + "&whereSection=" + escape(whereSection) + "&registrosPorPagina=" + registrosPorPagina,
        dataType: 'json',
        cache: false,
        success: function(item) {
            if (item.hasOwnProperty("ERROR")) {
                //showPopupBoxMessage(item.ERROR);
                alert(item.ERROR);
                totalPaginas = 1;
            } else {
                totalPaginas = item.numPaginas;
                registrosPorPagina = item.registrosPorPagina;
            }
        }, error: function(request, status, error) {
            showPopupBoxMessage(error);
        }
    });

    $("#" + idDivPaginacion).find("#totalPaginas").val(totalPaginas);
    $("#" + idDivPaginacion).find("#registrosPorPagina").val(registrosPorPagina);

    //--- verifico si estoy en la primera pagina
    if ($("#" + idDivPaginacion).find("#paginaActual").val() === "0") {
        //--- actulizo el label
        $("#" + idDivPaginacion).find("#labelPagina").text("Pagina 1");
        //--- deshabilito el boton "Atras"
        $("#" + idDivPaginacion).find("#paginacion_prev").css({"opacity": "0.3"});
        $("#" + idDivPaginacion).find("#paginacion_prev").attr('disabled', true);
        $("#" + idDivPaginacion).find("#paginacion_begin").css({"opacity": "0.3"});
        $("#" + idDivPaginacion).find("#paginacion_begin").attr('disabled', true);
    }


    if (parseInt($("#" + idDivPaginacion).find("#paginaActual").val()) + 1 >= totalPaginas) {
        $("#" + idDivPaginacion).find("#paginacion_next").css({"opacity": "0.3"});
        $("#" + idDivPaginacion).find("#paginacion_next").attr('disabled', true);
        $("#" + idDivPaginacion).find("#paginacion_end").css({"opacity": "0.3"});
        $("#" + idDivPaginacion).find("#paginacion_end").attr('disabled', true);
    } else {
        $("#" + idDivPaginacion).find("#paginacion_next").css({"opacity": "1"});
        $("#" + idDivPaginacion).find("#paginacion_next").attr('disabled', false);
        $("#" + idDivPaginacion).find("#paginacion_end").css({"opacity": "1"});
        $("#" + idDivPaginacion).find("#paginacion_end").attr('disabled', false);
    }
}

function cargarDatosGrillaDesdeControlador(idTabla, controlador, operacion, camposAdicionales, pagina, registrosPorPagina, campoFiltroOrden, valorFiltro) {
    if (typeof camposAdicionales === "undefined") {
        camposAdicionales = "";
    }
    if (typeof pagina === "undefined") {
        pagina = 0;
    }
    if (typeof registrosPorPagina === "undefined") {
        registrosPorPagina = -1;
    }
    if (typeof campoFiltroOrden === "undefined") {
        campoFiltroOrden = "";
    }
    if (typeof valorFiltro === "undefined") {
        valorFiltro = "";
    }

    //--- limpio la tabla
    while (document.getElementById(idTabla).rows.length > 1) {
        document.getElementById(idTabla).deleteRow(document.getElementById(idTabla).rows.length - 1);
    }

    //-- Obtengo la informacion
    $.ajax({
        type: "POST",
        url: "../controlador/" + controlador + ".php",
        //async: false, //--- realizar la peticion asincrona
        data: "OPERACION=" + operacion + "&controlador=" + controlador + (camposAdicionales.length > 0 ? "&" + camposAdicionales : "") + "&numPagina=" + pagina + "&registrosPorPagina=" + registrosPorPagina + "&campoFiltroOrden=" + escape(campoFiltroOrden) + "&valorFiltro=" + escape(valorFiltro),
        dataType: 'html',
        cache: false,
        success: function(html) {
            $("#" + idTabla + " tbody").append(html);
        }, error: function(request, status, error) {
            showPopupBoxMessage(error);
        }
    });
}

function cargarOpcionesSelectDesdeControlador(select, controlador, operacion, camposAdicionales) {
    //alert("llego...");
    if (typeof camposAdicionales === "undefined") {
        camposAdicionales = "";
    }
    //-- Obtengo la informacion
    $.ajax({
        type: "POST",
        //async:false,
        url: "../controlador/" + controlador + ".php",
        data: "OPERACION=" + operacion + "&controlador=" + controlador + (camposAdicionales.length > 0 ? "&" + camposAdicionales : ""),
        dataType: 'html',
        cache: false,
        success: function(html) {
            select.append(html);
        }, error: function(request, status, error) {
            showPopupBoxMessage(error);
        }
    });
}

function uploadFile(operacion, idForm, maxsize, extensionesPermitidas) {
    //-- defino el objeto en que voy a guardar la informacion que se va a enviar al controlador
    var error = false;
    var formData = new FormData();
    formData.append('controlador', 'UpLoadHandler');
    formData.append('OPERACION', operacion);
    //-- Obtengo todos input que esten en el formulario y los guardo en el objeto formData
    $("form#" + idForm + " :input").each(function() {
        var input = $(this);

        //--- si es de tipo "File", valido su contenido
        if (input.attr("type") === "file") {
            var files = document.getElementById(input.attr("id")).files;
            //--- verifico que se haya subido almenos un archivo
            if (files.length > 0) {
                //alert(files.length);
                //--- verifico el maxLength y las extensiones de cada archivo
                for (var i = 0; i < files.length; i++) {

                    var extension = (files[i].name.substring(files[i].name.lastIndexOf("."))).toLowerCase();

                    if (maxsize < files[i].size) {
                        alert("El archivo " + files[i].name + " excede el peso maximo (" + (maxsize / 1024) + " Kb.), Verifique.");
                        error = true;
                        break;
                    } else if (extensionesPermitidas.indexOf(extension) < 0) {
                        alert("La extension del archivo  \"" + files[i].name + "\"  no es valida, Verifique.  \nExtensiones validas: " + extensionesPermitidas + "");
                        error = true;
                        break;
                    }
                }
                if (!error) {
                    //---agrego los archivos 1x1..
                    for (var i = 0; i < files.length; i++) {
                        formData.append(input.attr("id") + "[]", input.prop('files')[i]);
                    }
                }
            }
        } else {
            formData.append(input.attr("id"), input.val());
        }
    });

    //--- realizo la peticion
    if (!error) {
        $.ajax({
            type: 'POST',
            url: '../controlador/UpLoadHandler.php', //Server script to process data
            data: formData,
            dataType: 'json',
            cache: false,
            success: function(item) {
                if (item.hasOwnProperty("ERROR")) {
                    showPopupBoxMessage(item.ERROR);
                    return "";
                } else {
                    //--- Limpio el formulario
                    $("#" + idForm).find('input[type="text"],input[type="password"],select,textarea,input[type="number"],input[type="file"]').each(
                            function(index) {
                                $(this).val("");
                            }
                    );
                    //--- esta funcion debe estar declarada en cada pagina que invoque este metodo.
                    //--- con esta funcion el usuario podra hacer lo que necesite con los datos finales
                    //--- como por ejemplo, actualizar una tabla, mostrar un msn, etc
                    uploadFile_procesarResultado(item);
                    //--- retorno el resultado    
                    //return item.toString();                
                }
            }
            ,
            error: function(request, status, error) {
                showPopupBoxMessage(error);
            }
            ,
            contentType: false,
            processData: false
        });
    }
}

function cargarOpcionesSelectFiltroDesdeGrilla(select, tabla) {
    if (typeof select === "undefined") {
        showPopupBoxMessage("EL SELECT enviado a la funcion cargarOpcionesSelectFiltroDesdeGrilla es undefined, Verifique.");
        return;
    } else if (typeof tabla === "undefined") {
        showPopupBoxMessage("LA TABLA enviada a la funcion cargarOpcionesSelectFiltroDesdeGrilla es undefined, Verifique.");
        return;
    } else {
        //--- obtengo la TR que tiene la cabecera
        var trCabecera = tabla.find("#cabecera");
        if (typeof trCabecera === "undefined") {
            showPopupBoxMessage("LA TABLA NO tiene una fila con id='cabecera', Verifique.");
            return;
        } else {
            //--- agrego un option con valor "Seleccionar"
            select.append($('<option>', {
                value: " ",
                text: "Seleccionar"
            }));
            //--- obtengo todos los TD con clase "TD_filtrable" y los guardo en el select
            trCabecera.find('.TD_filtrable').each(function() {
                select.append($('<option>', {
                    value: $(this).attr("value"),
                    text: $(this).html()
                }));
            });
        }
    }


}

function prevPagina(idDivPaginacion, idTabla, controlador, operacion, camposAdicionales, llevarAPaginaInicial) {
    if (!$("#" + idDivPaginacion).find("#paginacion_begin").attr('disabled') && !$("#" + idDivPaginacion).find("#paginacion_prev").attr('disabled')) {

        if (typeof llevarAPaginaInicial === "undefined") {
            llevarAPaginaInicial = false;
        }

        //--- obtengo la pagina actual
        var paginaActual = $("#" + idDivPaginacion).find("#paginaActual").val();
        var registrosPorPagina = $("#" + idDivPaginacion).find("#registrosPorPagina").val();
        var campoFiltroOrden = $("#divBuscador").find("#selectFiltroOrdenGrilla").val();   //-- Campo por el cual se hara el filtro
        var valorFiltro = $("#divBuscador").find("#valorFiltroGrilla").val();         //-- Valor con el cual se hara el filtro

        var paginaDestino = (llevarAPaginaInicial ? 0 : --paginaActual);
        //--- si es la primera pagina no hago nada
        if (paginaDestino >= 0) {
            //--- Cargo los datos
            cargarDatosGrillaDesdeControlador(idTabla, controlador, operacion, camposAdicionales, paginaDestino, registrosPorPagina, campoFiltroOrden, valorFiltro);

            //--- si retorno datos, entonces habilito el boton "Adelante" y actualizo el numero de la pagina
            $("#" + idDivPaginacion).find("#paginacion_next").css({"opacity": "1"});
            $("#" + idDivPaginacion).find("#paginacion_next").attr('disabled', false);
            $("#" + idDivPaginacion).find("#paginacion_end").css({"opacity": "1"});
            $("#" + idDivPaginacion).find("#paginacion_end").attr('disabled', false);

            //--- actualizo el numero de la pagina
            $("#" + idDivPaginacion).find("#paginaActual").val(paginaDestino);
            //--- actualizo el label
            $("#" + idDivPaginacion).find("#labelPagina").text("Pagina " + (paginaDestino + 1));

        }
        if (paginaDestino <= 0) {
            //--- deshabilito el boton "Atras"
            $("#" + idDivPaginacion).find("#paginacion_prev").css({"opacity": "0.3"});
            $("#" + idDivPaginacion).find("#paginacion_prev").attr('disabled', true);
            $("#" + idDivPaginacion).find("#paginacion_begin").css({"opacity": "0.3"});
            $("#" + idDivPaginacion).find("#paginacion_begin").attr('disabled', true);
        }
    }
}

function nextPagina(idDivPaginacion, idTabla, controlador, operacion, camposAdicionales, llevarAPaginaFinal) {

    if (!$("#" + idDivPaginacion).find("#paginacion_end").attr('disabled') && !$("#" + idDivPaginacion).find("#paginacion_next").attr('disabled')) {


        if (typeof llevarAPaginaFinal === "undefined") {
            llevarAPaginaFinal = false;
        }

        //--- obtengo la pagina actual
        var paginaActual = $("#" + idDivPaginacion).find("#paginaActual").val();
        var totalPaginas = $("#" + idDivPaginacion).find("#totalPaginas").val();
        var registrosPorPagina = $("#" + idDivPaginacion).find("#registrosPorPagina").val();
        var campoFiltroOrden = $("#divBuscador").find("#selectFiltroOrdenGrilla").val();   //-- Campo por el cual se hara el filtro
        var valorFiltro = $("#divBuscador").find("#valorFiltroGrilla").val();         //-- Valor con el cual se hara el filtro

        var paginaDestino = (llevarAPaginaFinal ? totalPaginas - 1 : ++paginaActual);
        //--- Cargo los datos
        cargarDatosGrillaDesdeControlador(idTabla, controlador, operacion, camposAdicionales, paginaDestino, registrosPorPagina, campoFiltroOrden, valorFiltro);
        //--- actualizo el label
        $("#" + idDivPaginacion).find("#labelPagina").text("Pagina " + (paginaDestino + 1));
        //--- habilito el boton "Atras"
        $("#" + idDivPaginacion).find("#paginacion_prev").css({"opacity": "1"});
        $("#" + idDivPaginacion).find("#paginacion_prev").attr('disabled', false);
        $("#" + idDivPaginacion).find("#paginacion_begin").css({"opacity": "1"});
        $("#" + idDivPaginacion).find("#paginacion_begin").attr('disabled', false);
        //--- actualizo el numero de la pagina
        $("#" + idDivPaginacion).find("#paginaActual").val(paginaDestino);

        //--- si retorno datos, entonces habilito el boton "Atras" y actualizo el numero de la pagina
        if (paginaDestino + 1 >= totalPaginas) {
            $("#" + idDivPaginacion).find("#paginacion_next").css({"opacity": "0.3"});
            $("#" + idDivPaginacion).find("#paginacion_next").attr('disabled', true);
            $("#" + idDivPaginacion).find("#paginacion_end").css({"opacity": "0.3"});
            $("#" + idDivPaginacion).find("#paginacion_end").attr('disabled', true);
        }
    }
}

$(function() {

    // Settings
    $('#general_error').hide();

    $(".datepicker").datepicker({dateFormat: "yy-mm-dd"});

    $('.datetimepicker').datetimepicker({
        ampm: true,
        dateFormat: "yy/mm/dd",
        timeFormat: 'hh:mm:ss'
    });

    var controlador = $("#controlador").val();

    $("#general_error").dialog({
        autoOpen: false,
        height: 'auto',
        width: 'auto',
        modal: true,
        title: 'Error'
    });

    //--- controlar el comportamiento del DIV para hacer inserciones a la BD
    $("#divInsert").dialog({
        autoOpen: false,
        height: 'auto',
        width: 'auto',
        modal: true,
        open: function() {
            //--- valido los permisos del usuario en session
            if (validarPermisoUsuarioSession(controlador + ".agregar") !== "") {
                $(this).dialog("close");
            }
        },
        buttons: {
            Guardar: function() {

                $.ajax({
                    type: "POST",
                    url: "../controlador/" + controlador + ".php",
                    data: $("#frmInsert").serialize() + "&controlador=" + controlador,
                    dataType: 'json',
                    cache: false,
                    success: function(item) {
                        if (item.hasOwnProperty("ERROR")) {
                            showPopupBoxMessage(item.ERROR);
                            //$("#errormessage").append(item.ERROR);
                        } else {
                            //--- Cargo los datos desde el controlador (para no descuadrar la paginacion)
                            inicializarPaginacionGrilla(
                                    $("#controlador").val()    //--- Nombre de la DBtable correspondiente a la grilla
                                    , "divPaginacion"            //--- Div en el que maneja la paginacion
                                    , ""                         //--- Where Section
                                    , -1                         //--- Registros por pagina (Cuando es "-1" toma los registros por pagina que se indican en el parametro del sistema)
                                    );
                            cargarDatosGrillaDesdeControlador(
                                    $("#controlador").val()    //--- idTabla
                                    , $("#controlador").val()    //--- controlador
                                    , "selectAllHTMLTableFormat" //--- Operacion
                                    , ""                         //--- Campos adicionales
                                    , $("#divPaginacion").find("#paginaActual").val()            //--- Pagina actual
                                    , $("#divPaginacion").find("#registrosPorPagina").val()      //-- Registros por pagina
                                    , "" //$("#divBuscador").find("#selectFiltroOrdenGrilla").val()   //-- Campo por el cual se hara el filtro
                                    , "" //$("#divBuscador").find("#valorFiltroGrilla").val()         //-- Valor con el cual se hara el filtro
                                    );

                            //-- cierro la ventana
                            $("#divInsert").dialog("close");
                        }
                    }, error: function(request, status, error) {
                        showPopupBoxMessage(error);
                        //$("#errormessage").append(error);
                    }
                });

            },
            Cancelar: function() {
                $(this).dialog("close");
            }
        },
        close: function() {
            var temp = $(this).find("#OPERACION").val();
            //--- Blanqueo los campos de texto, numericos, selects, textareas
            $(this).find('input[type="text"],input[type="password"],select,textarea,input[type="number"]').each(
                    function(index) {
                        $(this).val("");
                    }
            );
            //--- Deschequeo los ChaeckBox
            $(this).find('input:checkbox').each(
                    function(index) {
                        $(this).attr("checked", "");
                    }
            );
            //--- reestablezco el valor del campo en el que se graba la operacion    
            $(this).find("#OPERACION").val(temp);
        }
    });

    //--- controlar el comportamiento del DIV para hacer actualizaciones a la BD
    $("#divUpdate").dialog({
        autoOpen: false,
        height: 'auto',
        width: 'auto',
        modal: true,
        open: function() {
            //--- valido los permisos del usuario en session
            if (validarPermisoUsuarioSession(controlador + ".actualizar") !== "") {
                $(this).dialog("close");
            }
        },
        buttons: {
            Cambiar: function() {
                $.ajax({
                    type: "POST",
                    url: "../controlador/" + controlador + ".php",
                    data: $("#frmUpdate").serialize() + "&controlador=" + controlador,
                    dataType: 'json',
                    cache: false,
                    success: function(item) {
                        if (item.hasOwnProperty("ERROR")) {
                            showPopupBoxMessage(item.ERROR);
                            //$("#errormessage").append(item.ERROR);
                        } else {
                            //-- Obtengo el id de la fila que se actualizo
                            var id = $("#frmUpdate").find("#id").val();
                            //-- Obtengo la fila que se actualizo
                            var currentTr = $("#" + controlador + " tbody").find("#" + id);
                            //-- reemplazo el contenido de la fila con lo nuevo
                            currentTr.replaceWith(getNewRow($("#divUpdate")));
                            //-- cierro la ventana emergente
                            $("#divUpdate").dialog("close");
                        }
                    }, error: function(request, status, error) {
                        showPopupBoxMessage(error);
                        //$("#errormessage").append(error);
                    }
                });
            },
            Cancelar: function() {
                $(this).dialog("close");
            }
        },
        close: function() {
            var temp = $(this).find("#OPERACION").val();
            //--- Blanqueo los campos de texto, numericos, selects, textareas
            $(this).find('input[type="text"],input[type="password"],select,textarea,input[type="number"]').each(
                    function(index) {
                        $(this).val("");
                    }
            );
            //--- reestablezco el valor del campo en el que se graba la operacion    
            $(this).find("#OPERACION").val(temp);
        }
    });

    //--- activar el boton para eliminar registros
    $(document).on("click", ".icon-remove", function() {

        //--- valido los permisos del usuario en session
        if (validarPermisoUsuarioSession(controlador + ".eliminar") !== "") {
            return;
        }
        //--- Continuo con la operacion            

        var r = confirm("¿Desea Eliminar el registro?");
        if (r === false) {
            return;
        }

        var tr = $(this).closest('tr');
        var id = tr.attr("id");

        $.ajax({
            type: "POST",
            url: "../controlador/" + controlador + ".php",
            data: "OPERACION=delete&id=" + id + "&controlador=" + controlador,
            dataType: 'json',
            cache: false,
            success: function(item) {
                if (item.hasOwnProperty("ERROR")) {
                    showPopupBoxMessage(item.ERROR);
                    //$("#generalerror").append(item.ERROR);
                } else {
                    tr.css("background-color", "#FF3700");
                    tr.fadeOut(400, function() {
                        tr.remove();
                    });
                }
            }, error: function(request, status, error) {
                showPopupBoxMessage(error);
                //showPopupBoxMessage(item.ERROR);
            }
        });
        return false;
    });

    //--- capturar el evento change del boton que realiza la busqueda para que limpie el campo valor, cuando no se seleccione ningun campo de la lista desplegable
    $(document).on("change", "#selectFiltroOrdenGrilla", function() {
        $("#valorFiltroGrilla").val(($.trim($("#divBuscador").find("#selectFiltroOrdenGrilla option:selected").val()) === "" ? "" : $("#valorFiltroGrilla").val()));
    });

    //--- controlar el boton para realizar la busqueda en la grilla
    $(document).on("click", ".botonRealizarBusqueda", function() {
        var campo = $.trim($("#divBuscador").find("#selectFiltroOrdenGrilla").val());
        var valor = $.trim($("#divBuscador").find("#valorFiltroGrilla").val());
        var whereSentence = "";

        if (campo === "activo") {
            if (valor.toLowerCase() === "si" || valor.toLowerCase() === "s") {
                whereSentence = "WHERE activo=true";
            } else if (valor.toLowerCase() === "no" || valor.toLowerCase() === "n") {
                whereSentence = "WHERE activo=false";
            }
        } else if (campo !== "") {
            whereSentence = "WHERE \"" + campo + "\" ILIKE '%" + valor + "%'";
        }

        //--- si se definiio un filtro, ubico la grilla en la primea pagina
        if (whereSentence !== "") {
            $("#divPaginacion").find("#paginaActual").val(0);
        }

        inicializarPaginacionGrilla(
                $("#controlador").val()    //--- Nombre de la DBtable correspondiente a la grilla
                , "divPaginacion"            //--- Div en el que maneja la paginacion
                , whereSentence              //--- Where Section
                , -1                         //--- Registros por pagina (Cuando es "-1" toma los registros por pagina que se indican en el parametro del sistema)
                );

        cargarDatosGrillaDesdeControlador(
                $("#controlador").val()    //--- idTabla
                , $("#controlador").val()    //--- controlador
                , "selectAllHTMLTableFormat" //--- Operacion
                , ""                         //--- Campos adicionales
                , $("#divPaginacion").find("#paginaActual").val()            //--- Pagina actual
                , $("#divPaginacion").find("#registrosPorPagina").val()      //-- Registros por pagina
                , $("#divBuscador").find("#selectFiltroOrdenGrilla").val()   //-- Campo por el cual se hara el filtro
                , $("#divBuscador").find("#valorFiltroGrilla").val()         //-- Valor con el cual se hara el filtro
                );
    });

    //--- eventos de paginacion
    $(document).on("click", ".paginacion_prev", function() {
        prevPagina("divPaginacion", $("#controlador").val(), $("#controlador").val(), "selectAllHTMLTableFormat", "", false);
    });

    $(document).on("click", ".paginacion_begin", function() {
        prevPagina("divPaginacion", $("#controlador").val(), $("#controlador").val(), "selectAllHTMLTableFormat", "", true);
    });

    $(document).on("click", ".paginacion_next", function() {
        nextPagina("divPaginacion", $("#controlador").val(), $("#controlador").val(), "selectAllHTMLTableFormat", "", false);
    });

    $(document).on("click", ".paginacion_end", function() {
        nextPagina("divPaginacion", $("#controlador").val(), $("#controlador").val(), "selectAllHTMLTableFormat", "", true);
    });
});
